package com.cn.gxa.springjpa.service;

import com.cn.gxa.springjpa.bean.User;
import com.cn.gxa.springjpa.dao.UserDao;
import org.springframework.aop.framework.AopProxyUtils;
import org.springframework.aop.support.AopUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Optional;

@Service
public class UserService {
    //@Autowired  //按类型注入
    @Resource//根据名字注入
    private UserDao  userDao;

    /**
     * 查询所有
     * @return
     */
    public List<User> findAll(){
        List<User>  list=userDao.findAll();
        return  list;
    }

    public User findById(Integer id) {
       User user= userDao.findById(id).get();///userDao.getById(id);
      return user;
     /*     User user=userDao.getById(id);
       System.out.println(user);;*/
       /* User  user=userDao.getOne(id);
       */
       // return  user;
       /*getOne返回一个实体的引用，无结果会抛出异常；
        getById 返回代理对象,session关闭前可用
        findById返回一个Optional对象；
        findOne返回一个Optional对象，可以实现动态查询；*/
    }

    public  List<User>  findByName(String  username){
        return   userDao.findByUsernameContaining(username);/// userDao.findByUsernameLike(username);
    }

    public List<User> findAllOderBy() {
        return  userDao.findAllByOrderByAuth();
    }

    public  void  updateUserAuth(String auth,Integer no){
        userDao.updateUserAuth(auth,no);
    }
}
